|
__NOTOC__ In systems engineering and requirements engineering, a non-functional requirement is a requirement that specifies criteria that can be used to judge the operation of a system, rather than specific behaviors. They are contrasted with functional requirements that define specific behavior or functions. The plan for implementing ''functional'' requirements is detailed in the system ''design''. The plan for implementing ''non-functional'' requirements is detailed in the system ''architecture''. Broadly, functional requirements define what a system is supposed to ''do'' and non-functional requirements define how a system is supposed to ''be''. Functional requirements are usually in the form of "system shall do Non-functional requirements are often called "quality attributes" of a system. Other terms for non-functional requirements are "qualities", "quality goals", "quality of service requirements", "constraints" and "non-behavioral requirements". Informally these are sometimes called the "ilities", from attributes like stability and portability. Qualities, that is non-functional requirements, can be divided into two main categories: # Execution qualities, such as security and usability, which are observable at run time. # Evolution qualities, such as testability, maintainability, extensibility and scalability, which are embodied in the static structure of the software system. ==Examples== A system may be required to present the user with a display of the number of records in a database. This is a functional requirement. How up-to-date () this number needs to be, is a non-functional requirement. If the number needs to be updated in real time, the system architects must ensure that the system is capable of updating the () record count within an acceptably short interval of the number of records changing. Sufficient network bandwidth may be a non-functional requirement of a system. Other examples include: * Accessibility * Audit and control * Availability (see service level agreement) * Backup * Capacity, current and forecast * Certification * Compliance * Configuration management * Dependency on other parties * Deployment * Documentation * Disaster recovery * Efficiency (resource consumption for given load) * Effectiveness (resulting performance in relation to effort) * Emotional factors (like fun or absorbing or has "Wow! Factor") * Environmental protection * Escrow * Exploitability * Extensibility (adding features, and carry-forward of customizations at next major version upgrade) * Failure management * Fault tolerance (e.g. Operational System Monitoring, Measuring, and Management) * Legal and licensing issues or patent-infringement-avoidability * Interoperability * Maintainability * Modifiability * Network topology * Open source * Operability * Performance / response time (performance engineering) * Platform compatibility * Price * Privacy * Portability * Quality (e.g. faults discovered, faults delivered, fault removal efficacy) * Recovery / recoverability (e.g. mean time to recovery - MTTR) * Reliability (e.g. mean time between failures - MTBF, or availability) * Reporting * Resilience * Resource constraints (processor speed, memory, disk space, network bandwidth, etc.) * Response time * Reusability * Robustness * Safety or Factor of safety * Scalability (horizontal, vertical) * Security * Software, tools, standards etc. Compatibility * Stability * Supportability * Testability * Usability by target user community 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Non-functional requirement」の詳細全文を読む スポンサード リンク
|